1. Field of the Invention
This invention pertains to operating systems generally and, more particularly, a method and apparatus for installing an operating system.
2. Description of the Related Art
Personal computers are assembled from a number of discrete components known as “devices.” The central processing unit (“CPU”), monitor, keyboard, and memory, for instance, are commonly recognized devices used in desktop computers. These parts are integrated more closely in other types of personal computers, such as laptop and hand-held computers, to meet size and weight constraints. Still, these discrete parts can be separately identified. In recent years, however, it has become standard for personal computers to include “add-on” devices. A new personal computer might therefore further include a modem, a mouse, and an optical disk (“CD-ROM”) drive and may also be connected to a printer.
Each of these devices consumes some part of the computer's system resources. Exemplary resources include input/output (“I/O”) address spaces, interrupts, direct memory access (“DMA”) channels, and memory space. System resources therefore have to be allocated to each device. Historically, this was done by setting dual, in-line package (“DIP”) switches or jumpers on the hardware interface that hardwired these allocations. This is sometimes called “configuring” the system.
Once the system resources were allocated, the computer interfaced with these devices at the software level through software packages known as “drivers.” A driver contains information needed to send output to and/or receive input from the device. Thus, for example, when a computer sends a print job to the printer, the computer could do so through the printer driver using the correct parameters. Each driver typically is unique. The drivers must therefore be changed whenever the system is reconfigured. If a new device is installed or if a device is moved to a new address location, then a new driver must be installed and, if an obsolete driver exits, the old one must be deleted.
A new approach called “plug and play” (“PnP”) was eventually developed. A plug and play system permits a user to “plug in” a new device and “play” it without having to manually reconfigure the computer system. Instead, software examines the hardware and dynamically allocates system resources according to each device's needs. Typically, the information for each device is stored in a configuration file along with many types of devices that potentially may be associated with the computer system either by installation or connection. The software locates each device, identifies the device, determines the device's needs from the configuration file and the device's identity, and then allocates the system resources. The software then also typically installs whatever drivers the device needs according to the information in the configuration file.
The plug and play dynamic allocation can be performed by an operating system (“OS”). An operating system is a software package through which the user and the computer interface. Not all operating systems have plug and play capabilities. Exemplary plug and play operating systems include Windows® 95 and Windows® NT.
The operating system must at some point be installed on the personal computer. Typically, the OS is installed by the manufacturer of the personal computer before shipping or by the user after reconfiguring the system. Installation is generally performed using installation software provided on a CD-ROM under license by the owner of the operating system. The installation software for a plug and play operating system includes a configuration file for installing the drivers for devices that potentially might be associated with the computer. The operating system must be installed on the computer using installation software and it is during installation that the operating system dynamically allocates system resources and installs device drivers.
Plug and play operating systems are, however, fraught with many problems. For instance, the configuration file frequently has no information for new devices first marketed after the operating system is released. Also, plug and play operating systems frequently mistake a device for a device of another type. The operating system in these situations installs the wrong driver or fails to install any driver at all. Either way, the computer's full capabilities cannot be exercised until the errors are corrected. These problems are compounded in that OS installation software is typically provided to the installer on a CD-ROM, making updates and corrections to the installation software virtually impossible. Plug and play capabilities have consequently failed to realize their full potential.
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.